#include <bits/stdc++.h>
using namespace std;

int n, p[100001], ls[100001], rs[100001];
bool vis[100001];

void dfs(int x)
{
    cout << x << " ";
    if (ls[x])
        dfs(ls[x]);
    if (rs[x])
        dfs(rs[x]);
}

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++) {
        int x;
        cin >> x;
        p[x] = i;
    }
    stack<int> st;
    for (int i = 1; i <= n; i++) {
        int flag = 0;
        while (!st.empty() && p[st.top()] > p[i])
            flag = st.top(), st.pop();
        if (!st.empty())
            rs[st.top()] = i, vis[i] = true;
        if (flag)
            ls[i] = flag, vis[flag] = true;
        st.push(i);
    }
    for (int i = 1; i <= n; i++)
        if (!vis[i]) {
            dfs(i);
            break;
        }
    return 0;
}